<?php

require_once("lib/exception/internal_error_exception.php");
require_once("lib/exception/model_exception.php");
require_once("lib/exception/parameters_exception.php");

require_once('model/autor/to/autor_to.php');
require_once('model/autor_message/to/autor_message_to.php');

abstract class Autor_facade_delegate {	

	//registra un usuario en la aplicacion
	public function register_autor($autor_to) {
		throw Model_exception;
		throw Internal_error_Exception;
		throw Parameters_exception;
	}
	
	//loguear un usuario en la aplicacion
	public function login($login, $password, $is_encrypted) {
		throw Model_exception;
		throw Internal_error_Exception;
		throw Parameters_exception;
	}
	
	//cambia el password de un usuario en la aplicacion
	public function change_password($login, $old_password, $new_password) {
		throw Model_exception;
		throw Internal_error_Exception;
		throw Parameters_exception;
	}
	
	//Obtiene todos los datos de un usario
	public function get_user_info($login) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//cambia los datos de un usuario en la aplicacion
	public function update_user($autor_to) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//obtiene las estadisticas de un usuario
	public function get_statics_user($login) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//envia un sms a un usuario
	public function send_message($message) {
		throw Model_exception;
		throw Internal_error_Exception;
		throw Parameters_exception;
	}
	
	//visualiza la bandeja de entrada de un usuario
	public function get_all_mail_inbox($login, $start_index, $count) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//visualiza la bandeja de salida de un usuario
	public function get_all_mail_send($login, $start_index, $count) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//visualiza el contenido completo de un sms
	public function get_message($number_message) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//Cambia el estado de un mensaje a leido
	public function change_message_to_new($number_message) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//Cambia el estado de un mensaje a no leido
	public function change_message_to_old($number_message) {
		throw Model_exception;
		throw Internal_error_Exception;
	}
	
	//borra un mensaje
	public function delete_message($number_message) {
		throw Model_exception;
		throw Internal_error_Exception;
	}

}
?>